<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
    function Person(name) {
        this.name = name;
    }

    //人有一定的行为
    //将 一个包含方法的 对象 赋值给 构造函数的原型对象
    //使用自定义对象 赋值 给 原型对象 会覆盖掉 原有原型对象的所有的属性和方法 所以 需要 在自定义对象中添加 constructor:Person,

    Person.prototype = {
        constructor:Person,
        eat:function() {
            console.log(this.name+'吃午饭');        
        },
        walk:function() {
            console.log(this.name+'散步');
        },
        sayhi:function() {
            console.log(this.name+':你好呀!');
        }
    }

    //通过构造函数 实例化 一个 对象实例
    var p1 = new Person('jack');
    p1.eat();
    p1.walk()


    var p2 = new Person('andy');
    p2.eat();
    p2.walk();

    p2.sayhi();

    //验证 p1.eat 与 p2.eat 是使用的同一函数
    console.log(p1.eat == p2.eat); //true
    
    </script>
</body>
</html>